The Safe Harbor
for Markdown Documentation.
High-performance, engine-agnostic, and security-hardened static analysis.
The Obsidian Engineering Ledger
Three invariants enforced on every commit. No exceptions. No shortcuts.
These are not aspirations — they are gates. Every release of Zenzic ships only when all three pass.
Zero Assumptions at System Boundaries
Every public entry point validates its inputs at the boundary. Internal hot paths carry no defensive checks — the shape is guaranteed by the type system, enforced by mypy --strict on every merge.
[tool.mypy]
strict = true
warn_return_any = true
warn_unreachable = true
# Every public function has a typed signature.
# Every Any must be justified in a comment.Subprocess-Free Analysis
Production-grade tools do not shell out during analysis. No subprocess.run(), no os.system() inside per-item loops. Zenzic validates your documentation stack without executing it.
# ✓ ALLOWED — single setup phase
class ZenzicEngine:
def __init__(self, config: Config):
self._vsm = build_vsm(config) # I/O once
# ✗ BLOCKED — subprocess inside analysis loop
for page in corpus:
subprocess.run([...]) # ← architectural defectDeterministic Dependency Graph
Every dependency is pinned in a lockfile, audited by Dependabot, and scanned for SPDX licence compatibility. No transitive surprises at release time. uv lock and reuse lint run on every commit.
# runs on every commit via pre-commit
nox -s reuse
✓ SPDX headers present │ all source files
✓ Apache-2.0 declared │ LICENSES/
✓ Third-party notices │ NOTICE
# No dependency ships
# without a licence audit.Reporter & Shield
Sentinel in Action
Every finding is pinned to file, line, and source. Structured output for human eyes and machine parsing alike.
Gutter reporter
Each error shows the exact offending source line with gutter context. No scrolling through logs to find what broke.
Zenzic Shield
Scans every line - including fenced <code>bash</code> and <code>yaml</code> blocks - for leaked credentials. Exit code <code>2</code> is reserved exclusively for security events.
Severity summary
Every run ends with a compact summary. You know immediately whether the check failed hard or only emitted warnings.
Health Metrics
Quality Score
Track a deterministic score in CI to block regressions. A holistic, elegant view of your documentation health.
zenzic score --saveGet Started
From zero to documentation integrity in one command.
No configuration required. No account needed. Works on any Markdown project.
# explore the interactive lab (9 acts, zero setup)
# audit your documentation right now